科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件浅议C语言中数组和指针的互操作 (2)

浅议C语言中数组和指针的互操作 (2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

浅议C语言中数组和指针的互操作

作者:IHH 来源:赛迪网开发者论坛 2007年10月28日

关键字: 互操作 C语言 Linux

  • 评论
  • 分享微博
  • 分享邮件

注意:字符数组是一"’\0’"收尾的,这是C标准的一部分。因为在操作字符数组的时候是以’\0’作为结束判断的标志。当然了,如果你定义的是一个字符串那就不用加这个’\0’了。因为有机制帮助你自动添加。

上面的例子的串的生命方式为:string hello = "Hello, world";(当然了,具体的实现中你必须把"string.h"头文件加入到你的文件中),或者你也可以这样来声明:

  char *hello = "Hello, world";
    或者
    char hello[] = "Hello, world";

切换为字符指针数组,其效果是一样的);数组初始化的时候还可 以不标明最大小,即

  
char hello[] = {’H’,’e’,’l’,’l’,’o’
,’,’,’ ’,’w’,’o’,’r’,’l’,’d’,’
\0’};,

这时候编译器会根据后边的赋值情况为数组分配合适的内存空间,这个你不用担忧,除非机器正处于内存缺状态。

数组元素的访问:

可以利用循环结构来挨个访问数组的元素,比如:

  [...] 

  int i; 

  char hello[12] = {’H’,’e’,’l’,’l’,’o’,’
    ,’,’ ’,’w’,’o’,’r’,’l’,’d’,’\0’}; 

  [...] 

  for(i = 0; i < 12; i++){ 

   

  printf("%c",hello[i]); 

  } 

  printf("\n"); 

  [...]

其中有一点必须注意了,那就是i的值不能取到12,因为我们的下标识从0开始的,即hello[0]是第一个元素,数组的下界,而hello[12]是第一个空元素,数组的上界。

其实,数组元素的个数等于定义时的下标,也等于数组的上界(12)减去下界(0)得到的数值,还等于上界地址减去下界地址模sizeof(tyep_specifier)的值(假设数组空间是连续分布的,如果不是这样那么这种方法也就不成立了)。

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    闂侇収鍠曞▎銏㈡媼閵忋倖顫�

    濠碘€冲€归悘澶愬箖閵娾晜濮滈悽顖涚摃閹烩晠宕氶崶鈺傜暠闁诡垰鍘栫花锛勬喆椤ゅ弧濡澘妫楅悡娆撳嫉閳ь剟寮0渚€鐛撻柛婵呮缁楀矂骞庨埀顒勫嫉椤栨瑤绻嗛柟顓у灲缁辨繈鏌囬敐鍕杽閻犱降鍨藉Σ鍕嚊閹跺鈧﹦绱旈幋鐐参楅柡鍫灦閸嬫牗绂掔捄铏规闁哄嫷鍨遍崑宥夋儍閸曨剚浠樺ù锝嗗▕閳ь剚鏌ㄧ欢鐐寸▕鐎b晝顏遍柕鍡嫹

    重磅专题
    往期文章
    最新文章